#include <Arduino.h>
<<<<<<< HEAD
#define BTNPIN 23
#define DEBOUNCE 120 // 按钮防止抖动的时间

byte btnStatusCurrent = LOW;  // 当前按钮状态
byte btnStatusPrevious = LOW; // 之前按钮状态
=======
#include "OneButton.h"

#define BTN1_PIN 23
#define active_low true
#define pullup_enable true

/*按钮低电平有效，开启内部拉高*/
OneButton button1(BTN1_PIN, active_low, pullup_enable);
// 第一个参数，按钮连接的引脚
// 第二个参数，true  低电平有效，false 高电平有效
// 第三个参数，是否开启内部拉高
void singleClick1() {}
void doubleClick1() {}
void multiClick1()
{
  int n = button1.getNumberClicks();
  switch (n)
  {
  case 3:
    Serial.println("Triple Click");
    break;
  case 4:
    Serial.println("Quadruple Click");
    break;
  }
}

void longPressStart1()
{
}
void longPressStop1()
{
}
void longPress1()
{
}
>>>>>>> d8b0c62aa99d5acb4c845c5df11df4e5061b4ccf

void setup()
{
  Serial.begin(115200);
<<<<<<< HEAD
  pinMode(23, INPUT_PULLUP); // 使用内部电阻进行拉高,常用
  Serial.println(digitalRead(23));
=======
  button1.setDebounceTicks(50);  // 设置按键消抖时长
  button1.setClickTicks(500);        // 设置点击时长
  button1.attachClick(singleClick1); // 绑定点击事件，单击
  button1.attachDoubleClick(doubleClick1); // 双击
  button1.attachMultiClick(multiClick1);  // 多连击

  button1.setPressTicks(800);                    // 长按时间判定，800ms后算长按
  button1.attachLongPressStart(longPressStart1); // 长按开始（可选）
  button1.attachLongPressStop(longPressStop1);   // 长按结束（可选）
  button1.attachDuringLongPress(longPress1);     // 长按过程中运行的程序
>>>>>>> d8b0c62aa99d5acb4c845c5df11df4e5061b4ccf
}

void loop()
{
<<<<<<< HEAD
  btnStatusCurrent = digitalRead(BTNPIN);
  if (btnStatusCurrent == HIGH)
  {
    Serial.println("hold");
  }
  if (btnStatusCurrent == LOW)
  {
    Serial.println("press");
  }
=======
  button1.tick(); // 按键扫描
>>>>>>> d8b0c62aa99d5acb4c845c5df11df4e5061b4ccf
}